//
//  QWLocationSystem.h
//  Pods
//
//  Created by kevin on 16/1/7.
//
//

#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>

#define DISTANCE_BETWEEN(LOCATION1, LOCATION2) (6378245.0 * acos(sin(LOCATION1.latitude/57.2958) * sin(LOCATION2.latitude/57.2958) + cos(LOCATION1.latitude/57.2958) * cos(LOCATION2.latitude/57.2958) *  cos(LOCATION2.longitude/57.2958 - LOCATION1.longitude/57.2958)) )

CLLocationCoordinate2D transform(double wgLat, double wgLon, bool ignoreHKMacau);

@interface QWLocationSystem : NSObject

/**
 * 各地图API坐标系统比较与转换;
 * WGS84坐标系：即地球坐标系，国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系,  （EarthCoordinate）
 * 谷歌地图采用的是WGS84地理坐标系（中国范围除外）;
 * GCJ02坐标系：即火星坐标系，是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。     (MarsCoordinate)
 * 谷歌中国地图和搜搜中国地图采用的是GCJ02地理坐标系; BD09坐标系：即百度坐标系，GCJ02坐标系经加密后的坐标系;
 */

/**
 *  地球坐标->火星坐标
 *
 *  @param coordinate 地球坐标
 *
 *  @return 火星坐标
 */
+ (CLLocationCoordinate2D)getMarsFromEarthCoordinate:(CLLocationCoordinate2D)coordinate;

/**
 *  火星坐标->地球坐标
 *
 *  @param coordinate  火星坐标
 *
 *  @return 地球坐标
 */
+ (CLLocationCoordinate2D)getEarthFromMarsCoordinate:(CLLocationCoordinate2D)coordinate;


// 淘在路上专用

/**
 *  将CLLocationManager获得的定位结果，转换为Google对应坐标
 *
 *  @param coordinate 定位结果，地球坐标
 *
 *  @return 根据坐标区域返回结果
 */
+ (CLLocationCoordinate2D)getGoogleCoordinateFromCLLocationManagerCoordinate:(CLLocationCoordinate2D)coordinate;

/**
 *  将Google的坐标转换为高德坐标，唯一区别在于香港，澳门。
 *  Google把香港，澳门认为国外所以是用地球坐标表示，高德用火星坐标表示
 *
 *  @param coordinate Google坐标
 *
 *  @return 可以放到高德地图直接显示的坐标
 */
+ (CLLocationCoordinate2D)getAutoNaviCoordinateFromGoogleCoordinate:(CLLocationCoordinate2D)coordinate;

/**
 *  将Google坐标转换为苹果坐标，区别在于国内（不包括香港，澳门）
 *  苹果是国外的地图提供商，所有区域都是用地球坐标表示，Google在国内(不包括香港，澳门)是用火星坐标表示的。
 *
 *  @param coordinate Google坐标
 *
 *  @return 可以放到苹果地图直接显示的坐标
 */
+ (CLLocationCoordinate2D)getAppleCoordinateFromGoogleCoordinate:(CLLocationCoordinate2D)coordinate;


@end
